package com.think.demo.base.testIO;


import java.io.*;

public class 路径 {
	public static void main(String[] args) {
		//user.dir指定了当前的路径
		System.out.println("user.dir:" + System.getProperty("user.dir"));

		File directory = new File("a");//设定为当前文件夹
		try{
			//获取标准的路径
			System.out.println("获取标准的路径" + directory.getCanonicalPath());
			//获取绝对路径
			System.out.println("获取绝对路径" + directory.getAbsolutePath());
			System.out.println("getPath:" + directory.getPath());
			//File.getCanonicalPath()和File.getAbsolutePath()大约只是对于
			// new File(".")和new File("..")两种路径有所区别。
			/**
			 * # 对于getCanonicalPath()函数，“."就表示当前的文件夹，而”..“则表示当前文件夹的上一级文件夹
			 # 对于getAbsolutePath()函数，则不管”.”、“..”，返回当前的路径加上你在new File()时设定的路径
			 # 至于getPath()函数，得到的只是你在new File()时设定的路径
			 */
		}catch(Exception e){}
		try {
			Long aLong = Long.class.newInstance();
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		}

		try {
			BufferedReader br = new BufferedReader(
					new InputStreamReader(new FileInputStream("under_demo.txt")));
			String str;
			while ((str=br.readLine())!=null){
				System.out.println(str);
			}
			br.close();
		} catch (Exception e) {
			e.printStackTrace();
		}

		File under_java = new File("src/main/java/under_java.txt");
		if (under_java.exists()) {
			System.out.println("读取java下的file成功");
		} else {
			System.err.println("读取java下的file失败");
		}

		File under_resources = new File("src/main/resources/under_resources.txt");
		if (under_resources.exists()) {
			System.out.println("读取resources下的file成功");
		} else {
			System.err.println("读取resources下的file失败");
		}

		//读取被标记为resources类型的文件，它会在classes path目录中
		/**
		 * 注意：
		 * 路径.class.getClassLoader().getResourceAsStream()和TestIO.class.getResourceAsStream()
		 * 文件路径写法不同后面那个需要根据包名加上../../../
		 */
//		InputStream resourceAsStream = 路径.class.getClassLoader().getResourceAsStream("under_resources.txt");
		InputStream resourceAsStream = 路径.class.getResourceAsStream("../../../../../under_resources.txt");
		BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(resourceAsStream));
		try {
			String str;
			while ((str=bufferedReader.readLine())!=null){
				System.out.println("getResourceAsStream:" + str);
			}
			bufferedReader.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
}
